package com.javase.base.syntax;

/**
 * @author zq
 * @Date: 2020/5/26
 * 递归
 * 本例子是通过阶乘 例如：
 * 5！= 5*4*3*2*1
 * 7！= 7*6*5*4*3*2*1
 */
public class RecursiveDemo {

    public static void main(String[] args) {
        int result = 0;
        System.out.println(RecursiveDemo.test(50, result));
    }

    /**
     * 计算 i 的阶乘结果
     * @param i
     * @param result
     * @return
     *
     * 遇到问题：如果result的计算超过数据类型定义的长度则返回reuslt的初始值
     */
    public static int test(int i,int result){
        if(i == 1){
            result = i * 1;
        }else{
            result = i * test(i-1,result);
        }
        return result;
    }
}
